
--SECUENCIA PARA INSERCIONES EN GRUPO
CREATE SEQUENCE AUTO_IDGRUPO START WITH 10000000 INCREMENT BY 1;


--ALTA GRUPO
CREATE OR REPLACE PROCEDURE ALTA_GRUPO(GRUPO$ IN VARCHAR2,IDNIVEL$ IN NUMBER,IDGRADO$ IN NUMBER)
AS
	GRUPO_ACTUAL$ 		VARCHAR2(3);
	NIVEL_ACTUAL$ 		VARCHAR2(45);
BEGIN 
	SELECT GRUPO INTO GRUPO_ACTUAL$ FROM GRUPO 	WHERE GRUPO=GRUPO$ AND IDNIVEL=IDNIVEL$ AND IDGRADO=IDGRADO$;
	SELECT NIVEL INTO NIVEL_ACTUAL$ FROM NIVEL  WHERE IDNIVEL=IDNIVEL$;
	IF (GRUPO_ACTUAL$ IS NOT NULL) THEN
			DBMS_OUTPUT.PUT_LINE('EL GRUPO '||GRUPO$||' EN '||IDNIVEL$||'('||NIVEL_ACTUAL$||') Y EL GRADO '||IDGRADO$||' YA EXISTE, NO PUEDE SER DUPLICADO');
	END IF;
	EXCEPTION
	WHEN NO_DATA_FOUND THEN
	INSERT INTO GRUPO(IDGRUPO,GRUPO,IDNIVEL,IDGRADO) VALUES(AUTO_IDGRUPO.NEXTVAL,GRUPO$,IDNIVEL$,IDGRADO$);
	DBMS_OUTPUT.PUT_LINE('EL GRUPO FUE AGREGADO');
	COMMIT;
END  ALTA_GRUPO;
/

--BAJA GRUPO
CREATE OR REPLACE PROCEDURE BAJA_GRUPO(IDGRUPO$ IN NUMBER)
AS
BEGIN
	DELETE FROM GRUPO WHERE IDGRUPO=IDGRUPO$;
	IF SQL%NOTFOUND THEN
		DBMS_OUTPUT.PUT_LINE('EL GRUPO NO EXISTE');
	ELSE
		DBMS_OUTPUT.PUT_LINE('EL GRUPO HA SIDO ELIMINADO');
		COMMIT;
	END IF;
END BAJA_GRUPO;
/

--ACTUALIZA GRUPO
CREATE OR REPLACE PROCEDURE ACTUALIZA_GRUPO(IDGRUPO$ IN NUMBER,GRUPO$ IN VARCHAR2)
AS
BEGIN
	UPDATE GRUPO SET GRUPO=GRUPO$ WHERE IDGRUPO=IDGRUPO$;
	IF SQL%NOTFOUND THEN
		DBMS_OUTPUT.PUT_LINE('NO EXISTE EL GRUPO A ACTUALIZAR');
	ELSE
		DBMS_OUTPUT.PUT_LINE('SE ACTUALIZO EL GRUPO');
	END IF;
	COMMIT;
END ACTUALIZA_GRUPO;
/